Astro 给不同的扩展定义各自的 CDN
不要停,继续折腾。
换成 Astro 后成功点燃我喜欢折腾的那股劲,可能是随性惯了吧,前几天很随意地就决定将博客程序换成 Astro,哪怕是真想换,也应该在本地测试一阵子再推送到线上。可自己又是瞎来,赶鸭子般就进行推送了,主打一个任性。
这两天一直在进行修修补补,还别说,当深入了解多一点点后,我是越来越喜欢上 Astro 了。在泡官方文档与 Github 仓库时,总觉得每刻都有新的收获。
今天我就被在 Github 仓库上看到的一则更新说明给吸引住了,
具体更新可查阅:https://github.com/withastro/astro/releases/tag/astro%404.5.0;
立马开始了测试模式,我看中的功能是:build.assetsPrefix
,大概就是 Astro 可以以文件扩展名来定义该类型的文件使用不一样的 CDN。
虽然我的使用场景是暂时用不到多个 CDN 这样的功能,但是不用没关系,方法要学会。
方法很简单,修改配置文件 astro.config.mjs
,添加以下内容:
export default defineConfig({
// 其他配置项
// 为了演示效果,添加了两个域名,未定义的扩展则返回博客地址
build: {
assetsPrefix: {
js: 'https://cdn.iamlm.com',
css: 'https://cdn.iamlm.com',
png: 'https://img.iamlm.com',
jpg: 'https://img.iamlm.com',
jpeg: 'https://img.iamlm.com',
webp: 'https://img.iamlm.com',
fallback: 'https://www.iamlm.com'
}
}
});
这样子就可以解决在本地测试时使用本地文件,避免防盗链、跨域等问题,然后打包上线时又能将静态文件套上 CDN 进行加速服务。
接下进入又拍云控制台进行设置,正常绑定域名并 CNAME 到又拍云提供的地址上,设置好证书(原来又拍云可以申请 Let’s Encrypt DV SSL 单域名证书,可自动续期,之前我都是一年申请一次,草率了)。因为我对 CDN 的设置也不是很懂,因此我只说一下与此相关的两个设置项。
第一、源站设置;
第二、跨域,解决 JS 报错;
老实说,我对这些 CDN 的设置是真不太懂,太多规则了。设置错了又怕被人刷,现在我的又拍云都是停停用用,基本都是测试时才开一下这样子。毕竟现在用的国内服务器,网站的速度还是有保障的。